//
//  Kratos_HttpManager.h
//  kk_framework
//
//  Created by 7yao.top on 2018/11/7.
//  Copyright © 2018年 7yao.top. All rights reserved.
//
#import "Kratos_HttpConstant.h"
#import <Foundation/Foundation.h>
#import "single.h"

@class AFHTTPSessionManager,Kratos_HttpRequst;


@interface Kratos_HttpManager : NSObject

singleton_h(HttpManager)

@property (nonatomic, strong,nullable) NSMutableDictionary *  Kra_reqeustDictionary;
@property (nonatomic, strong,nullable) AFHTTPSessionManager *  Kra_sessionManager;
@property (nonatomic, strong,nullable) NSMutableArray *  Kra_requestInterceptorObjectArray;
@property (nonatomic, strong,nullable) NSMutableArray *  Kra_responseInterceptorObjectArray;




/**
 发送网络请求，紧凑型
 
 @param requestBlock 请求配置 Block
 @param result 请求结果 Block
 @return 该请求对应的唯一 task id
 */
- (NSString *_Nullable)Kratos_sendRequestWithConfigBlock:(nonnull Kratos_RequestConfigBlock )requestBlock Kratos_complete:(nonnull Kratos_HttpResponseBlock) result;

/**
 根据请求 ID 取消该任务
 
 @param requestID 任务请求 ID
 */
- (void)Kratos_cancelRequestWithRequestID:(nonnull NSString *)requestID;


/**
 根据请求 ID 列表 取消任务
 
 @param requestIDList 任务请求 ID 列表
 */
- (void)Kratos_cancelRequestWithRequestIDList:(nonnull NSArray<NSString *> *)requestIDList;

@end
